<?php
namespace koin\mengwang;
class Mengwang{
    private $uid = '';
    private $password = '';
    private $ip_port = '';
    function __construct($uid, $password, $ip_port)
    {
        $this->uid = $uid;
        $this->password = $password;
        $this->ip_port = $ip_port;
        $ConfigManager=new ConfigManager();
        $ConfigManager->set_usableip(['ipAddress1'=>$this->ip_port]);
    }

    function singleSend($mobile,$msg){
        $data = [];
        //设置账号(账号需要大写)
        $data['userid']=$this->uid;
        //设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
        $data['pwd']=$this->password;
        // 设置手机号码 此处只能设置一个手机号码
        $data['mobile']=$mobile;
        //设置发送短信内容
        $data['content']=$msg;
        // 业务类型
        $data['svrtype']='SMS001';
        // 设置扩展号
        $data['exno']='11';
        //用户自定义流水编号
        $data['custid']='b3d1a2783d31b21b8573';
        // 自定义扩展数据
        $data['exdata']='12316';
        //请求地址
        $url='/sms/v2/std/';
        //密码是否加密
        $isEncryptPwd=true;
        $SmsSendConn=new SmsSendConn();
        try {
            $result = $SmsSendConn->singleSend($url, $data, $isEncryptPwd);
            if ($result['result'] === 0) {
                return ['status'=>0, 'msg'=>'单条信息发送成功！','result'=>$result];
            } else {
                return ['status'=>-1, 'msg'=>"单条信息发送失败，错误码：" . $result['result']];
            }
        }catch (\Exception $e) {
            return ['status'=>-1, 'msg'=>"单条信息发送失败，错误码：" . $e->getMessage()];
        }
    }
}


/*
 * 相同内容群发
 */
/*$SmsSendConn=new SmsSendConn();
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
// 设置手机号码 此处只能设置一个手机号码
$data['mobile']='136xxxxxxxx,136xxxxxxxx,136xxxxxxxx';
//设置发送短信内容
$data['content']='验证码：6666，打死都不要告诉别人哦！';
// 业务类型
$data['svrtype']='SMS001';
// 设置扩展号
$data['exno']='11';
//用户自定义流水编号
$data['custid']='b3d1a2783d31b21b8573';
// 自定义扩展数据
$data['exdata']='12316';
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $result = $SmsSendConn->batchSend($url, $data, $isEncryptPwd);

    if ($result['result'] === 0) {
        print_r("相同内容信息发送成功！");
    } else {
        print_r("相同内容信息发送失败，错误码：" . $result['result']);
    }
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/

/*
 * 个性化群发
 */
/*$SmsSendConn=new SmsSendConn();
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
//multimt包结构集合
$data['multimt']=array(
    array(
        'mobile'=>'136xxxxxxxx',
        'content'=>'验证码：6666，打死都不要告诉别人哦！',
        'svrtype'=>'SMS001',
        'exno'=>'11111',
        'custid'=>'b3d1a2783d31b21b8573',
        'exdata'=>'1231611'
    ),
    array(
        'mobile'=>'136xxxxxxxx',
        'content'=>'验证码：6666，打死都不要告诉别人哦！',
        'svrtype'=>'SMS001',
        'exno'=>'11111',
        'custid'=>'b3d1a2783d31b21b8573',
        'exdata'=>'1231611'
    )
);
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $result = $SmsSendConn->multiSend($url, $data, $isEncryptPwd);

    if ($result['result'] === 0) {
        print_r("个性化内容信息发送成功！");
    } else {
        print_r("个性化内容信息发送失败，错误码：" . $result['result']);
    }
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/

/*
 * 查询剩余金额或条数
 */
/*$SmsSendConn=new SmsSendConn();
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $result = $SmsSendConn->getBalance($url, $data, $isEncryptPwd);
    if ($result['result'] === 0) {
        if ($result['chargetype'] === 0) {
            print_r("查询成功，当前计费模式为条数计费,剩余条数为：" . $result['balance']);
        } else if ($result['chargetype'] === 1) {
            print_r("查询成功，当前计费模式为金额计费,剩余金额为：" . $result['money']);
        } else {
            print_r("未知的计费类型");
        }
    } else {
        print_r("查询余额失败，错误码：" . $result['result']);
    }
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/


/*
 * 获取上行
 */
/*$SmsSendConn=new SmsSendConn();
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
// 设置获取上行的最大条数
$data['retsize']=100;
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $result = $SmsSendConn->getMo($url, $data, $isEncryptPwd);
    if($result['result']===0)
    {
        foreach($result['mos'] as $k=>$v)
        {
           $result['mos'][$k]['content']=urldecode($v['content']);//将内容进行utf-8解码
        }
        print_r("获取上行成功");
        print_r($result['mos']);
    }
    else
    {
        print_r("获取上行失败，错误码：" .$result['result']);
    }
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/


/*
 * 获取状态报告
 */

/*$SmsSendConn=new SmsSendConn();
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
// 设置获取上行的最大条数
$data['retsize']=100;
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $result = $SmsSendConn->getRpt($url, $data, $isEncryptPwd);//获取状态报告
    if($result['result']===0)
    {
        print_r("获取状态报告成功");
        print_r($result['rpts']);//输出状态报告信息
    }
    else
    {
        print_r("获取状态报告失败，错误码：" .$result['result']);
    }
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/


/*
 * 线程获取上行(由于此处线程已设置为永久执行，一旦启用只能通过重启服务器关闭，不要多次调用该线程方法，否则每次调用都会开启一个新的线程占用资源，请谨慎使用)
 */
/*require_once('RecvMoThread.php');
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
// 设置获取上行的最大条数
$data['retsize']=100;
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $RecvMoThread = new RecvMoThread($url, $data, $isEncryptPwd);
    $RecvMoThread->start();//开始执行线程
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/


/*
 * 线程获取状态报告(由于此处线程已设置为永久执行，一旦启用只能通过重启服务器关闭，不要多次调用该线程方法，否则每次调用都会开启一个新的线程占用资源，请谨慎使用)
 */
/*require_once('RecvRptThread.php');
//初始化数组
$data=array();
//设置账号(账号需要大写)
$data['userid']='kuku06';
//设置密码（密码MD5加密模式下时间戳在encrypt_pwd函数中自动获取时间戳并生成MD5密文密码，在这里不管加密还是不加密都不用设置时间戳）
$data['pwd']='123456';
// 设置获取上行的最大条数
$data['retsize']=100;
//请求地址
$url='/sms/v2/std/';
//密码是否加密
$isEncryptPwd=true;
try {
    $RecvMoThread = new RecvRptThread($url, $data, $isEncryptPwd);
    $RecvMoThread->start();//开始执行线程
}catch (\Exception $e) {
    print_r($e->getMessage());//输出捕获的异常消息
    return false;
}*/
?>